iT邦幫忙

2021 iThome 鐵人賽

DAY 26
0
自我挑戰組

Android 初新者系列 第 26

Day26 - AlertDialog

  • 分享至 

  • xImage
  •  

今天來練習第一個Dialog

  • AlertDialog

AlertDialog不僅僅提供使用者顯示文字訊息的功能
還有提供使用者輸入資訊、點選確認取消按鈕
甚至連清單方塊ListView也提供

開始

這功能跟Toast一樣不需要拉任何元件
但為求方便
我還是習慣用一個按鈕元件
觸發AlertDialog

activity_main.xml

隨便設一個按鈕

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/btn_toast"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="AlertDialog測試"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

MainActivity.java

這裡有兩種寫的方法
1.宣告變數
先宣告一個AlertDialog.Builder dialog
dialog.setMessage():設定內文顯是什麼文字
setTitle():設定AlertDialog的標題名
setIcon():設定他的Icon
show():最後把這個AlertDialog顯示出來

AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
                dialog.setMessage("你成功了")
                        .setTitle("AlertDialog")
                        .setIcon(android.R.drawable.presence_away)
                        .show();

2.省略宣告變數
這寫法簡潔多了

new AlertDialog.Builder(MainActivity.this)
                        .setMessage("你成功了")
                        .setTitle("AlertDialog")
                        .setIcon(android.R.drawable.presence_away)
                        .show();

當沒有任何按鍵時,你可以點擊手機返回按鈕或是Dialog以外的區塊,來關閉AlertDialog

執行結果:
初始畫面:
https://ithelp.ithome.com.tw/upload/images/20211002/20141769vcVmqVoo8y.png
點擊按鈕:
https://ithelp.ithome.com.tw/upload/images/20211002/20141769IuGhHfvUMw.png

若想在Dialog加入按鈕的話
加入
.setNegativeButton("否",null)
.setPositiveButton("隨便拉",null)
.setNeutralButton("喔是喔",null)
後面null表示不處理

new AlertDialog.Builder(MainActivity.this)
                        .setMessage("你成功了")
                        .setTitle("AlertDialog")
                        .setIcon(android.R.drawable.presence_away)
                        .setNegativeButton("否",null)
                        .setPositiveButton("隨便拉",null)
                        .setNeutralButton("喔是喔",null)
                        .show();

執行結果:
https://ithelp.ithome.com.tw/upload/images/20211002/20141769NmwZCRWSTN.png


上一篇
Day25 - Dialog介紹
下一篇
Day27 - DataPickerDialog
系列文
Android 初新者30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言